import router from './index'
import { useUserStore } from '@/stores/user'
import { ElMessage } from 'element-plus'

// 需要角色权限的路由配置
const roleRoutes = {
  '/rider': ['RIDER'],
  '/admin': ['ADMIN'],          // 管理员专属
  '/personal': ['USER', 'ADMIN' , 'RIDER'] // 允许管理员访问个人中心
}

// 路由守卫
router.beforeEach((to, from, next) => {
  const userStore = useUserStore()
  const user = userStore.user

  // 检查是否是访问需要权限的路由
  const path = to.path
  const requiredRoles = Object.entries(roleRoutes).find(([route]) => path.startsWith(route))?.[1]

  if (requiredRoles) {
    // 如果用户未登录
    if (!user) {
      ElMessage.warning('请先登录')
      next({
        path: '/login',
        query: { redirect: to.fullPath } // 保存原始请求路径，登录后可以直接跳转
      })
      return
    }

    // 管理员拥有超级权限，可以访问所有页面
    if (user.role === 'ADMIN') {
      next()
      return
    }

    // 检查普通用户角色是否有权限访问
    if (!requiredRoles.includes(user.role)) {
      ElMessage.error('您没有权限访问该页面')
      next('/')
      return
    }
  }

  next()
}) 